import {format} from "upath";
import {cityData} from "@/common/locales/cityData.js";
import {countryData} from "@/common/locales/countryData1.js"

/* eslint-disable*/
// 验证规则 大陆身份证验证
function isCardNo(card) {
  let reg = /(^\d{18}$)|(^\d{17}(\d|X|x)$)/
  return reg.test(card)
}

// 港奥证
function isHKMacao(card) {
  let reg = /^[HMhm]{1}([0-9]{10}|[0-9]{8})$/
  return reg.test(card)
}
// 台湾证
function isTaiwan(card) {
  var re1 = /^[0-9]{8}$/
  var re2 = /^[0-9]{10}$/
  if (re2.test(card) || re1.test(card)) {
    return true
  } else {
    return false
  }
}

// 外籍人员身份证
function isPassport(card) {
  let re1 = /^[a-zA-Z]{5,17}$/
  let re2 = /^[a-zA-Z0-9]{5,17}$/
  if (re2.test(card) || re1.test(card)) {
    return true
  } else {
    return false
  }
}

//验证符合所有的证件
function isIdNumber(card) {
  let reg1 = /(^\d{18}$)|(^\d{17}(\d|X|x)$)/
  let reg2 = /^[HMhm]{1}([0-9]{10}|[0-9]{8})$/
  let reg3 = /^[0-9]{8}$/
  let reg4 = /^[0-9]{10}$/
  let reg5 = /^[a-zA-Z]{5,17}$/
  let reg6 = /^[a-zA-Z0-9]{5,17}$/
  if (reg1.test(card) || reg2.test(card) || reg3.test(card) || reg4.test(card) || reg5.test(card) || reg6.test(card)) {
    return true
  } else {
    return false
  }
}

//验证是否手机号码
function isTel(tel) {
  return (/^1[1234567890]\d{9}$/).test(tel)
}
//验证是否邮箱
function isEamil(eamil) {
  return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/.test(eamil)
}

// 日期字符串转时间戳
function dateStringToDateTime(str) {
  if (!str) {
    str = ''
  }
  str = str.substring(0, 19)
  str = str.replace(/-/g, '/')
  str = new Date(str).valueOf()
  return str
}

//获取路径上的参数
function GetQueryString(name) {
  var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  var r = window
    .location
    .search
    .substr(1)
    .match(reg);
  if (r != null) {
    return unescape(r[2]);
  } else {
    return null;
  }
}

function setTitle(text) {
  document.title = text
}

//随机数
function randomNumber(min = 1, max = 15) {
  return (Math.floor(Math.random() * max) + min) * 1000
}

//时间格式化 yyyy-mm-dd hh:mm:ss 转yyyy-mm-dd hh:mm
function timeFormat(time) {
  var formatTime = time.split(' ')[0] + ' ' + time
    .split(' ')[1]
    .split(':')[0] + ':' + time
    .split(' ')[1]
    .split(':')[1]
  return formatTime
}

/*
@text 隐藏的文本
*/

//隐藏中间4位数
function hiddenInfo(text) {
  var reg = /^(\w+)\w{4}(\w{2})$/g;
  text = text.replace(reg, "$1****$2");
  return text
}

//判断当前环境是在 小程序里还是微信浏览器还是手机浏览器 mini:小程序 wx:微信浏览器  h5:浏览器
function hostoperating() {
  var ua = navigator
    .userAgent
    .toLowerCase();
  if (ua.match(/MicroMessenger/i) == "micromessenger") { //从微信中打开
    if (!window.WeixinJSBridge || !WeixinJSBridge.invoke) {
      if (window.__wxjs_environment === 'miniprogram') { // 当前为小程序
        return 'mini';
      } else {
        return 'wx';
      }
    }
  } else {
    return 'h5';
  }
}


//数字 强制保留2位
function toDecimal2(x) {
  var f = parseFloat(x);
  if (isNaN(f)) {
      return false;
  }
  var f = Math.round(x * 100) / 100;
  var s = f.toString();
  var rs = s.indexOf('.');
  if (rs < 0) {
      rs = s.length;
      s += '.';
  }
  while (s.length <= rs + 2) {
      s += '0';
  }
  return s;
}

//省市id转name
function formatCity(cityId) {

  // 如果有city字段  例子 后台返回的中国无锡市 001032002(里面包含了 国家 城市信息)   我们数据里面的中国无锡市   中国001
  // 无锡市320200 有点相似但又对应不上所以做处理 截取前三位作为国家的id  001032002 截取的是001
  let countryID = cityId.substring(0, 3);
  //截取三位以后的字符串作为城市id 001032002 截取的是32002
  let cityID = cityId.substring(4);

  //countryData 是引入的countryData的值 遍历下 国家id有没有跟相等的 有就取到国家的名字 没有就为空
  let country_name = ''
  let city_name = ''
  let province_name=''

  for (let i = 0; i < countryData[0].length; i++) {
    if (countryData[0][i].value == countryID) {
      country_name = countryData[0][i].name;
      break;
    }
    country_name = "";
  }

  //citydata 没有台湾 香港 澳门 所以写死
  switch (cityId) {
    case "001071":
      //中国台湾
      city_name = "台湾";
      break;
    case "001081":
      //中国香港
      city_name = "香港";
      break;
    case "001082":
      //中国澳门
      city_name = "澳门";
      break;
    default:
      //001011005 001032002  
      //后台数据32002  本地数据320200 32代表的是省 江苏省都是32开头  2代表的是无锡市 截取cityid 前两位作为省


      let address1 = cityID.substring(0, 2);




      //console.log(address1)

      //截取cityid 最后两位作为市
      let address2 = cityID[cityID.length - 1] + cityID[cityID.length - 2];

      //直辖市做兼容
      if (address1 == '11') {
        //北京市
        return '北京市'

      } else if (address1 == '12') {
        //天津市
        return '天津市'
      } else if (address1 == '31') {
        //上海市
        return '上海市'
      } else if (address1 == '50') {
        //重庆市
        return '重庆市'
      }

      //补齐省
      //console.log('-+')
      //console.log(320000)
      //console.log(province)
      //console.log(address1 + '0000')

      //拼接 补齐零
      let address = address1 + "0" + address2 + "0";
      let province = address1 + '0000'
      for (let i = 0; i < cityData.length; i++) {
        if (province == cityData[i].value) {
          province_name = cityData[i].name;
          break;
        }
        province_name = "";
      }



      //遍历下 城市id有没有跟相等的 有就取到城市的名字 没有就为空
      for (let i = 0; i < cityData.length; i++) {
        if (address == cityData[i].value) {
          city_name = cityData[i].name;
          break;
        }
        city_name = "";
      }
      //
  }

  return (country_name +province_name+ city_name)

  //console.log(cityData)

}

export {
  hiddenInfo,
  isEamil,
  setTitle,
  isCardNo,
  isHKMacao,
  isTaiwan,
  isPassport,
  dateStringToDateTime,
  isIdNumber,
  GetQueryString,
  randomNumber,
  isTel,
  timeFormat,
  hostoperating,
  formatCity,
  toDecimal2
}
